-----------------------------------------------------------------------------
--
-- Module      :  Data.TypeLevel.Class
-- Copyright   :
-- License     :  AllRightsReserved
--
-- Maintainer  :  eduard.sergeev@gmail.com
-- Stability   :  Highly Experimental
-- Portability :
--
-- Classes for type-level manipulation 
--
-----------------------------------------------------------------------------

{-# LANGUAGE NoImplicitPrelude #-}

module Data.TypeLevel.Class (

   Numerable(..),

   typeValue,

) where

import Prelude (Num, error)


-- * Conversion to Integer
class Numerable a where
    toNumber :: Num n => a -> n


typeValue :: a
typeValue = error "Type-level entity is not supposed to be evaluated in runtime"
